Skip to content

feat: add predicate leaf functions#33

Merged
leaves12138 merged 3 commits into
apache:mainfrom
lxy-9602:add-predicate-leaf-func
Jun 1, 2026
Merged

feat: add predicate leaf functions#33
leaves12138 merged 3 commits into
apache:mainfrom
lxy-9602:add-predicate-leaf-func

Conversation

@lxy-9602

Copy link
Copy Markdown
Contributor

Purpose

No Linked issue.

Introduce concrete LeafFunction and CompoundFunction implementations for all predicate operators:

  • Comparison operators: Equal, NotEqual, GreaterThan, GreaterOrEqual, LessThan, LessOrEqual
  • Set operators: In, NotIn
  • Null operators: IsNull, IsNotNull
  • Compound operators: And, Or
  • String-pattern operators: Like, Contains, StartsWith, EndsWith

Each operator provides Test() overloads for per-row evaluation, batch (Arrow array) evaluation, and min/max stats-based file skipping.

Tests

API and Format

Documentation

Generative AI tooling

Migrate-by: Aone Copilot (Claude)

@lxy-9602

Copy link
Copy Markdown
Contributor Author

Thanks @SteNicholas for contributing the string-pattern predicate operators (Like, Contains, StartsWith, EndsWith) — originally from alibaba/paimon-cpp#130. Migrated as part of this batch. 🎉

@leaves12138 leaves12138 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the updated predicate leaf function implementations. The LIKE matcher fix looks good, and the comparison, null, IN/NOT_IN, compound, and string predicate semantics match the Java behavior I checked. Given that tests and public construction entry points will be submitted in the follow-up PR to keep this one focused, I do not see blockers for this PR.

@leaves12138 leaves12138 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the latest head. The follow-up LIKE error formatting/emplace cleanup looks good, and I did not find new blockers.

@leaves12138
leaves12138 merged commit 7efab4f into apache:main Jun 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants